home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 250 (1993-06-10)(Manewaldt, A.)(DE)(PD).zip / Taifun 250 (1993-06-10)(Manewaldt, A.)(DE)(PD).adf / ADM / ARexx / InsertAddress.ttx < prev    next >
Text File  |  1993-06-11  |  4KB  |  106 lines

  1. /* $VER InsertAddress.ttx 1.1 (10.02.93)
  2.  
  3.    Makro für TurboText.
  4.  
  5.    Fügt die zum unter dem Cursor befindlichen Nachnamen zugehörige
  6.    Adresse in den Text ein. Fragt nach, ob Adresse eingefügt werden
  7.    soll - wenn nicht, dann wird weitergesucht.
  8.  
  9.    Es könnten auch Patterns benutzt werden, doch leider liefert die
  10.    GETWORD-Funktion von TTX keine Patterns wie #? zurück.
  11.  
  12.    Written by Jan Geißler.                                              */
  13.  
  14.  
  15. OPTIONS RESULTS
  16.  
  17. GETWORD                      /*    Wort unter Cursor holen */
  18. WORT = RESULT
  19.  
  20. ADDRESS 'ADDRESSMASTER.1'
  21.  
  22. fst = 1                      /* Anfangsposition = 1 (= erste Adresse) */
  23. res = 0
  24.  
  25. DO FOREVER                   /* Endlosschleife */
  26.  
  27.    ADM.LASTNAME = WORT
  28.    SEARCH fst ADM            /* Eintrag suchen */
  29.    res = RESULT
  30.  
  31.    IF res >-1 THEN DO        /* Rückgabewert = Nummer der gefundenen
  32.                                 Adresse */
  33.  
  34.       GETADDRESS RESAD         /* Adresse holen in Stemvariable RESAD   */
  35.  
  36.       ADDRESS
  37.  
  38.                              /* Abfrage, ob richtige Adresse gefunden */
  39.       req = RESAD.FIRSTNAME || "_" || RESAD.LASTNAME
  40.       "REQUESTBOOL" "Diese_Adresse_nehmen?" req
  41.  
  42.       IF RESULT=Yes THEN DO    /* Wenn Adresse übernommen werden soll */
  43.  
  44.            MOVELEFT
  45.            GETCHAR             /* Zeichen unter Cursor                */
  46.            IF DATATYPE(RESULT,ALPHANUMERIC)=0 THEN MOVERIGHT
  47.            ELSE DO
  48.              MOVERIGHT
  49.              MOVEPREVWORD
  50.            END;
  51.  
  52.            GETCURSORPOS FOLDS  /* X/Y-Position holen                  */
  53.            PARSE VAR RESULT ver hor dum
  54.            SAY hor
  55.  
  56.            DELETEEOW                               /* Wort löschen    */
  57.            INSERT RESAD.FIRSTNAME RESAD.LASTNAME   /* Name einfügen   */
  58.  
  59.            ver = ver+1                             /* Y-Wert erhoehen */
  60.            INSERTLINE NOBREAK INDENT               /* Neue Zeile      */
  61.            MOVE FOLDS ver hor                      /* Cursor bewegen  */
  62.            TEXT RESAD.ADDRESS1                     /* Adreßfeld 1     */
  63.  
  64.            IF RESAD.ADDRESS2~="" THEN DO
  65.               ver = ver+1                          /* Y-Wert erhoehen */
  66.               INSERTLINE NOBREAK                   /* Neue Zeile      */
  67.               MOVE FOLDS ver hor                   /* Cursor bewegen  */
  68.               TEXT RESAD.ADDRESS2                  /* Adreßfeld 2     */
  69.            END;
  70.  
  71.            ver = ver+1                             /* Y-Wert erhoehen */
  72.            INSERTLINE NOBREAK                      /* Neue Zeile      */
  73.            MOVE FOLDS ver hor                      /* Cursor bewegen  */
  74.            TEXT RESAD.POSTCODE RESAD.CITY          /* PLZ Ort         */
  75.  
  76.            IF RESAD.COUNTRY~="" THEN DO
  77.               ver = ver+1                          /* Y-Wert erhoehen */
  78.               INSERTLINE NOBREAK                   /* Neue Zeile      */
  79.               MOVE FOLDS ver hor                   /* Cursor bewegen  */
  80.               TEXT RESAD.COUNTRY                      /* Land            */
  81.            END;
  82.  
  83.            EXIT                /* ... und Programm verlassen          */
  84.       END
  85.       ELSE                   /* Sonst: nächsten Eintrag suchen        */
  86.         ADDRESS
  87.         fst = res + 1
  88.    END
  89.    ELSE                      /* Fehler aufgetreten */
  90.       ADDRESS
  91.       IF res=-1 THEN BEEPSCREEN
  92.       ELSE
  93.         IF res=-2 THEN msg="AdressSpeicher_leer!"
  94.         IF res=-3 THEN msg="Nicht_genug_Speicher!"
  95.         IF res=-4 THEN msg="Aufruf_v.SEARCH_falsch!"
  96.         IF res=-5 THEN msg="Interner_Fehler_in_Search"
  97.         IF res=-6 THEN msg="Kein_Suchparam.in_Stem!"
  98.         IF res=-7 THEN msg="SearchPos_ungültig!"
  99.         REQUESTBOOL "Fehler!" msg
  100.       END
  101.  
  102.       EXIT
  103.  
  104.    END /* IF */
  105. END /* DO */
  106.